Apache Ant-এ <property>
টাস্কটি একটি প্রপার্টি (property) ডিফাইন বা সেট করার জন্য ব্যবহৃত হয়। Properties হল সেই ভেরিয়েবল যা টাস্কের মধ্যে বিভিন্ন মান ধারণ করে এবং পরবর্তী টাস্কগুলিতে ব্যবহার করা যেতে পারে। প্রপার্টি ডিফাইন করা হলে, আপনি সেই মান টাস্কে রেফারেন্স হিসেবে ব্যবহার করতে পারেন।
এটি সাধারণত একটি key-value পেয়ার হিসেবে কাজ করে। প্রপার্টি একটি নির্দিষ্ট name এবং তার value দ্বারা সংজ্ঞায়িত হয় এবং Ant স্ক্রিপ্টের যেকোনো জায়গায় সেই প্রপার্টি ব্যবহার করা সম্ভব হয়।
<property name="property_name" value="property_value"/>
এটি একটি মৌলিক উদাহরণ যেখানে একটি প্রপার্টি ডিফাইন করা হচ্ছে।
<project name="PropertyExample" default="showProperty" basedir=".">
<property name="my.property" value="Hello, Apache Ant!" />
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
এখানে:
my.property
নামক একটি প্রপার্টি ডিফাইন করা হয়েছে যার মান Hello, Apache Ant!
।my.property
প্রপার্টির মান প্রিন্ট করবে।Hello, Apache Ant!
এটি একটি উদাহরণ যেখানে প্রপার্টি ব্যবহার করে পাথ বা ডিরেক্টরি সেভ করা হচ্ছে, এবং পরবর্তী টাস্কে সেটি ব্যবহার করা হচ্ছে।
<project name="PathExample" default="compile" basedir=".">
<property name="src.dir" value="src" />
<property name="build.dir" value="build/classes" />
<target name="compile">
<mkdir dir="${build.dir}" />
<javac srcdir="${src.dir}" destdir="${build.dir}" />
</target>
</project>
এখানে:
আপনি Ant বিল্ড স্ক্রিপ্ট চালানোর সময় command-line থেকে প্রপার্টি মান সেট করতে পারেন। এটি খুবই কার্যকরী যখন আপনি রানটাইমে প্রপার্টির মান পরিবর্তন করতে চান।
ant -Dmy.property="This is a command line property"
এটি my.property নামক প্রপার্টির মান This is a command line property
সেট করবে এবং এই মানটি স্ক্রিপ্টের মধ্যে ব্যবহৃত হবে।
<project name="CommandLineProperty" default="showProperty" basedir=".">
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
This is a command line property
আপনি properties ফাইল ব্যবহার করে একাধিক প্রপার্টি ডিফাইন করতে পারেন। এটি ব্যবহারকারী বা পরিবেশের উপর ভিত্তি করে প্রপার্টি কনফিগারেশন বদলানোর জন্য খুবই কার্যকরী।
প্রথমে একটি build.properties
ফাইল তৈরি করুন:
src.dir=src
build.dir=build/classes
এখন, আপনার Ant স্ক্রিপ্টে এটি লোড করতে পারেন:
<project name="PropertyFileExample" default="compile" basedir=".">
<!-- Load properties file -->
<property file="build.properties" />
<target name="compile">
<mkdir dir="${build.dir}" />
<javac srcdir="${src.dir}" destdir="${build.dir}" />
</target>
</project>
এখানে:
build.properties
ফাইল থেকে প্রপার্টি লোড করবে।Ant এ যদি একই নামের প্রপার্টি একাধিক জায়গায় ডিফাইন করা থাকে, তাহলে property precedence এর নিয়ম অনুসরণ করা হয়। এই প্রক্রিয়াতে command-line প্রপার্টি সর্বোচ্চ অগ্রাধিকার পায়, তারপর properties file এবং শেষে Ant script এর মধ্যে ডিফাইন করা প্রপার্টি।
ant -Dmy.property="Command line value"
<project name="PropertyPrecedence" default="showProperty" basedir=".">
<!-- Property in build.xml -->
<property name="my.property" value="Ant script value" />
<target name="showProperty">
<echo message="${my.property}" />
</target>
</project>
Command line value
এখানে, command-line থেকে my.property এর মান Command line value
প্রদান করা হয়েছে, তাই এটি স্ক্রিপ্টে ব্যবহৃত হবে।
<property>
টাস্কটি শর্তসাপেক্ষভাবে ব্যবহার করা যেতে পারে, যেমন একটি প্রপার্টি যদি আগে থেকেই সেট না থাকে, তাহলে তাকে একটি ডিফল্ট মান প্রদান করা।
<project name="ConditionalProperty" default="setProperty" basedir=".">
<target name="setProperty">
<property name="my.property" value="Default Value" />
<condition property="my.property" value="Override Value">
<available file="src/example.txt" />
</condition>
<echo message="${my.property}" />
</target>
</project>
এখানে:
src/example.txt
ফাইলটি আছে কি না।Override Value
হবে, অন্যথায় ডিফল্ট মান Default Value
হবে।যদি example.txt
ফাইলটি থাকে:
Override Value
যদি example.txt
ফাইলটি না থাকে:
Default Value
<property>
টাস্কটি Apache Ant-এ প্রপার্টি ডিফাইন এবং সেট করার জন্য ব্যবহৃত হয়। এটি আপনাকে ডাইনামিকভাবে key-value পেয়ার হিসেবে তথ্য প্রদান করতে সহায়তা করে এবং এই মানগুলি পরে অন্যান্য টাস্কে ব্যবহার করা যেতে পারে। প্রপার্টি command-line, properties file, বা Ant script থেকে লোড হতে পারে এবং এর মান টাস্কের মধ্যে রেফারেন্স করা যায়। এটি path, fileset, javac, এবং jar টাস্কের মতো অনেক টাস্কের জন্য খুবই কার্যকরী।
common.read_more